作者:Only_cxy | 来源:互联网 | 2023-06-09 10:57
篇首语:本文由编程笔记#小编为大家整理,主要介绍了云原生DaaS服务-分布式日志服务简述相关的知识,希望对你有一定的参考价值。 软件系统中存在着各式各样的日志,包括应用
篇首语:本文由编程笔记#小编为大家整理,主要介绍了云原生DaaS服务-分布式日志服务简述相关的知识,希望对你有一定的参考价值。
软件系统中存在着各式各样的日志,包括应用日志、业务日志、系统日志、访问日志、行为日志等。日志是系统在运行过程中变化的一种抽象,其内容为指定对象的某些操作和其操作结果按时间的有序集合。
一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况下需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统可以提高定位问题的效率。
分布式日志服务是针对日志类数据的一站式服务,用户无须开发就能快捷完成数据采集、消费、投递以及查询分析等功能,帮助提升运维和运营效率,建立数据技术时代海量日志处理能力。分布式日志服务提供了日志中枢的功能,可大规模接入各种实时日志数据(包括metric、event、BinLog、TextLog、click等);支持与各种实时计算引擎及服务对接,并提供完整的日志监控、告警等功能,可以根据SDK/API实现自定义消费;可以将日志中枢中的数据投递至存储类服务,过程支持压缩、自定义分区,以及行列等各种存储格式;支持实时索引日志中枢中的数据,提供关键词、模糊、上下文、范围、SQL聚合等丰富的查询手段,支持仪表盘和告警功能;支持多租户隔离、访问控制、日志审计。
在文件日志中,每个日志文件由一条或多条日志组成,每条日志描述了一次单独的系统事件,是日志服务中处理的最小数据单元。日志服务采用半结构化数据模式定义一条日志。该模式中包含主题(topic)、时间(time)、内容(content)和来源(source)4个数据域。
分布式日志服务能将分布式环境的日志统一收集聚合,存储在分布式数据库中,同时经过一定的处理可以使非结构化的文本内容结构化,以便做结构化的查询和分析。
分布式日志服务包括以下主要能力:
- 聚合:从多个数据源收集和发送日志的能力。
- 处理:将日志消息转换为有意义的数据,以便进行分析的能力。
- 存储:能够长时间存储数据,以便用于监控、趋势分析和安全性方面的使用场景。
- 分析:通过查询数据并在其上创建可视化和仪表盘来分析数据的能力。
目前分布式日志服务主流的开源实现方案是ELK。ELK是Elastic公司提供的一套完整的日志收集和展示的解决方案,是Elasticsearch、Logstash和Kibana 3个产品的首字母缩写。3个产品之间互相配合使用,完美衔接,高效地满足了很多场合的应用,是目前主流的一种日志系统。最新版本已经改名为Elastic Stack,在社区中有大量的内容和使用案例。
- Elasticsearch是一个实时的分布式搜索和分析引擎,可以用于全文搜索、结构化搜索以及分析。它是一个建立在全文搜索引擎Apache Lucene基础上的搜索引擎,使用Java语言编写。
- Logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集(如读取文本文件、数据存储/MQ)、解析,经过过滤后支持输出到不同目的地(Elasticsearch、文件、MQ、Redis、Kafka等)。
- Kibana为 Elasticsearch 提供了分析和可视化的Web平台。它可以在Elasticsearch 的索引中查找,交互数据,并生成各种维度表格和图形。
此架构由Logstash分布于各个节点上来收集相关日志、数据,并对其进行分析、过滤后发送给远端服务器上的Elasticsearch进行存储。Elasticsearch将数据以分片的形式压缩存储,并提供多种API供用户查询和操作。用户亦可以更直观地通过配置Kibana Web方便地对日志查询,并根据数据生成报表。